{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "incoming-vanilla",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from scipy import stats\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "employed-greeting",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Untitled.ipynb                       random.repeat.bed\r\n",
      "non_repeats.bed                      random.repeat.polishing_rate.txt\r\n",
      "random.non_repeat.bed                \u001b[35mrepeats.bed\u001b[m\u001b[m\r\n",
      "random.non_repeat.polishing_rate.txt repeats.merged.bed\r\n"
     ]
    }
   ],
   "source": [
    "!ls"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "sixth-process",
   "metadata": {},
   "source": [
    "I used the following script to produce the files\n",
    "```bash\n",
    "bedtools merge -i <(sort -k1,1 -k2,2n -k3,3n repeats.bed) > repeats.merged.bed\n",
    "bedtools complement -i repeats.merged.bed -g <(sort -k1,1 -k2,2n ~/Projects/CHM13/self_sv/validation/20200921/t2t-chm13.20200921.fasta.fai) > non_repeats.bed\n",
    "\n",
    "bedtools random -g ~/Projects/CHM13/self_sv/validation/20200921/t2t-chm13.20200921.fasta.fai -l 100000 -n 20000 -seed 32 | bedtools intersect -v -a - -b repeats.merged.bed > random.non_repeat.bed\n",
    "bedtools coverage -a random.non_repeat.bed -b ../../pe.bed | cut -f 10 > random.non_repeat.polishing_rate.txt\n",
    "\n",
    "bedtools random -g ~/Projects/CHM13/self_sv/validation/20200921/t2t-chm13.20200921.fasta.fai -l 100000 -n 20000 -seed 33 | bedtools intersect -v -a - -b non_repeats.bed > random.repeat.bed\n",
    "bedtools coverage -a random.repeat.bed -b ../../pe.bed | cut -f 10 > random.repeat.polishing_rate.txt\n",
    "```\n",
    "\n",
    "First, plot the distribution of polishing rates within and without repeats."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "official-silence",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_without_repeats = pd.read_csv(\"random.non_repeat.polishing_rate.txt\", names=[\"rate\"])\n",
    "df_within_repeats = pd.read_csv(\"random.repeat.polishing_rate.txt\", names=[\"rate\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "productive-processing",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.yscale(\"log\")\n",
    "plt.hist([df_without_repeats[\"rate\"], df_within_repeats[\"rate\"]], bins=50, label=[\"without_repeats\",\"within_repeats\"])\n",
    "plt.xlabel(\"polishing rate\")\n",
    "plt.ylabel(\"count\")\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "plt.savefig(\"ED_Fig4c.pdf\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "unable-chemical",
   "metadata": {},
   "source": [
    "Next, let's do a t-test."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "offensive-mitchell",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Ttest_indResult(statistic=-0.2849485963580353, pvalue=0.8515)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stats.ttest_ind(df_without_repeats[\"rate\"], df_within_repeats[\"rate\"], permutations=10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "super-bradley",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "hollywood-supervision",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
